home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs52.d81
/
timtimer.arc
/
WRITE.SEQ2.0
< prev
Wrap
Text File
|
2009-10-10
|
3KB
|
178 lines
******************************
*áwriteárealátimeáclocká#2.0á*
*áááááádallasáversionáááááááá*
******************************
*áááááááámayá29áá1987áááááááá*
*áááááááááááááááááááááááááááá*
*áááááábyátimágácorcoranááááá*
*áááááááááááááááááááááááááááá*
*áááthisás/wáisápartáofátheáá*
*ártcásharewareápackage.áitáá*
*áisáokayátoádistributeáandáá*
*áshare,ábutánotátoásell.áááá*
*áááááááááááááááááááááááááááá*
*ápleaseáconsiderásupportingá*
*ámysticájim'sás/wásystemáááá*
*áááááááááááááááááááááááááááá*
******************************
*
*
*
org $4580
ddra equ $dc02
dra equ $dc00
hours equ $4570
temp equ $4571
tmp1 equ $4572
tmp2 equ $4573
secs equ $4574
mins equ $4575
count equ $4576
*
*
*
*
lda $01 ;getámemáconfig
pha ;saveáit
lda #$35 ;turnáonái/oáregion
sta $01
sei ;intáoff
lda dra ;readádra
sta tmp1 ;saveáit
lda ddra ;readáddra
sta tmp2
lda #$f ;newáconfiguration
sta ddra ;alláo/p's
lda #$e ;initialástateáofái/o
sta dra ;allálinesáfalse
*
*
*****************
*áwriteároutineá*
*****************
*
*
jsr slct ;selectátheáclockáchip
lda $dc0b ;readáhoursáfromátod
sta temp ;storeáinátemp
lsr
lsr ;bringápmáintoáplace
and #$20 ;isolateápmábit
ora temp ;retrieveáhours
and #$3f ;cleará2ámsb's
ora #$80 ;setá12/24ábit
sta hours ;saveáináhours
lda $dc09 ;readásecsáfromácia
sta secs
lda $dc0a ;readáminutes
sta mins
lda $dc08 ;readásecs/100á&ácloseáciaátod
asl ;shiftárightá4áplaces
asl
asl
asl
jsr wrtbyt ;writeátoáclock
lda secs ;readásecondsáfromácia
jsr wrtbyt
lda mins ;readáminutesáfromácia
jsr wrtbyt
lda hours ;retrieveáhours
jsr wrtbyt
lda #$0 ;clearáday
jsr wrtbyt
lda $8518 ;readádateáfromágeos
jsr hxtbcd ;convertátoábcd
jsr wrtbyt
lda $8517 ;readámontháfromágeos
jsr hxtbcd ;convertátoábcd
jsr wrtbyt
lda $8516 ;readáyear
jsr hxtbcd ;convertátoábcd
jsr wrtbyt
*
*
lda tmp1 ;restoreádraáconfiguration
sta dra
lda tmp2 ;restoreáddraáconfiguration
sta ddra
pla ;restoreáoldámemoryáconfiguration
sta $01
cli
jmp $c22c ;reloadádesktop
*
*
************************
*áendáofáwriteároutineá*
************************
*
*
*
*
*áwriteáaábyteátoátheártc
*
wrtbyt tax ;saveádataábyte
ldy #$8 ;setáupácount
lda #$e ;initialáconfig
sta dra ;outputáenableáoff
txa ;retrieveádata
wloop and #$01 ;clráallábutálsb
ora #$4 ;setáupáforáwrite
sta dra
ora #$e ;writeátheábit
sta dra
dey ;decrementácount
beq wdone ;finished?
txa ;getádata
lsr ;selectánextábit
tax ;saveádataáagain
jmp wloop ;loop
wdone rts
*
*
*
*
*
*áhexátoábcdáconvertároutine
*
hxtbcd ldx #$00 ;clearáxáreg
hbloop sta tmp1 ;saveáhexávalue
sec ;setácarryábit
sbc #$0a ;subtractá10
bmi hbout ;neg?...it'sádone
inx ;incáxáreg
jmp hbloop ;loop
hbout txa ;countáofá0a's
asl
asl
asl
asl ;shiftálsánibbleátoámsánibble
ora tmp1 ;assembleábcdáword
rts
*
*
*
*selectáclockáchip
*
*
slct lda #$e ;readácycleátoástartádallasáchip
sta dra
lda #$2
sta dra
lda #$e
sta dra
lda #$2 ;loopácount
sta count
sloop lda #$c5
jsr wrtbyt
lda #$3a
jsr wrtbyt
lda #$a3
jsr wrtbyt
lda #$5c
jsr wrtbyt
dec count ;decrementácount
bne sloop
rts